#include <stdio.h>

int main(void) {
    char lido = ' ';
    int convertido = 0, anterior = 0, somaparcial = 0, somafinal = 0;

    printf("Digite um numero em algarismos romanos: ");

    while((lido = getchar()) != '\n') {
        switch(lido) {
            case 'i':
            case 'I':
                convertido = 1;
                break;
            case 'v':
            case 'V':
                convertido = 5;
                break;
            case 'x':
            case 'X':
                convertido = 10;
                break;
            case 'l':
            case 'L':
                convertido = 50;
                break;
            case 'c':
            case 'C':
                convertido = 100;
                break;
            case 'd':
            case 'D':
                convertido = 500;
                break;
            case 'm':
            case 'M':
                convertido = 1000;
                break;
        }

        if(anterior != 0) {
            if(anterior < convertido) {
                somafinal -= somaparcial;
                somaparcial = 0;
            } else if(anterior > convertido) {
                somafinal += somaparcial;
                somaparcial = 0;
            }
        }
        somaparcial += convertido;
        anterior = convertido;
    }
    somafinal += somaparcial;

    printf("O numero em algarismos romanos corresponde ao seguinte numero em algarismos arabicos: %d", somafinal);

    return 0;
}
